<?php 
/**
 * 商品类型控制器
 * 此控制器包括类型的添加、删除、编辑、显示等功能
 */
class TypeAction extends CommonAction{
	/**
	 * 类型显示
	 */
	public function index(){
            import('ORG.Util.Page');
            $db=M('type');
            $page = new Page($db->count('type_id'), 10);
            
            $limit = $page->firstRow . ',' . $page->listRows;
            $result = $db->limit($limit)->select();
            $this->data=$result;
            $this->page=$page->show();
            $this->display();
	}
	/**
	 * 添加类型视图
	 */
	public function typeAddShow(){
		$this->display();
	}
	/**
	 * 添加类型实现
	 */
	public function typeAdd(){
            $where=array('name'=>$this->_post('name'));
            if(!isset($_POST['sub'])){
                if(M('type')->where($where)->find()){
                    echo 1;//表示已存在此类型
                    die;
                }
            }else{
                if(M('type')->where($where)->find()){
                    $this->error('此类型名已存在');
                }
                $data=array('name'=>$this->_post('name'));
                if(M('type')->data($data)->add()){
                    $this->success('添加成功');
                }else{
                    $this->error('添加失败');
                }
            }

           
            
	}
	/**
	 * 编辑类型视图
	 * @return [type]
	 */
	public function typeEditShow(){
            $type_id=$this->_get('type_id');
            $result=m('type')->where(array('type_id'=>$type_id))->find();
            $this->data=$result;
            $this->display();
	}
	/**
	 * 编辑类型实现
	 * @return [type]
	 */
	public function typEdit(){
            $data=array(
                'type_id'=>$this->_post('type_id'),
                'name'=>$this->_post('name')
                    );
            if(M('type')->data($data)->save()){
                $this->success('保存成功',U('Type/index'));
            }else{
                $this->error('编辑失败');
            }
	}
	/**
	 * 删除对应id类型
	 * @return [type]
	 */
	public function typeDel(){
            $type_id=$this->_get('type_id');
            if(M('type')->where(array('type_id'=>$type_id))->delete()){
                $this->success('删除成功');
            }else{
                $this->error('删除失败');
            }
	}

	//以下各方法是对类型属性的操作

	public function attrList(){
            $db=D('Type_attrView');//这里的模型如何设置，待处理
            $result=$db->select();
            $this->data=$result;
            $this->display();
	}
	/**
	 * 添加类型视图
	 */
	public function attrAddShow(){
            if(isset($_GET['type_id'])){
                $type_id=(int)$_GET['type_id'];
                $result=M('type')->where(array('type_id'=>$type_id))->find();
               
            }else{
                $result=M('type')->select();
            }
             $this->type=$result;
            $this->display();
	}
	/**
	 * 添加类型实现
	 */
	public function attrAdd(){
            $attr_choose=str_replace(PHP_EOL,',',$_POST['choose']);
            $data=array(
                
                'attr_name'=>$this->_post('name'),
                'attr_choose'=>$attr_choose,
                'flag'=>$this->_post('flag'),
                'type_id'=>(int)$_POST['type_id']
            );
            if(M('type_attr')->data($data)->add()){
                $this->success('添加成功',U('Type/attrList'));
            }else{
                $this->error('添加失败');
            }
	}
	/**
	 * 编辑类型视图
	 * @return [attr]
	 */
	public function attrEditShow(){
            $pro_id=$this->_get('pro_id');
            $result=D('Type_attrView')->where(array('pro_id'=>$pro_id))->find();
            $type=M('type')->select();
//            p($type);
            $this->type=$type;
//            p($result);
            $result['attr_choose']=str_replace(',',PHP_EOL,$result['attr_choose']);
            $this->data=$result;
            $this->display();
	}
	/**
	 * 编辑类型实现
	 * @return [attr]
	 */
	public function attrEdit(){
             $attr_choose=str_replace(PHP_EOL,',',$_POST['choose']);
             $data=array(
                 'pro_id'=>(int)$_POST['pro_id'],
                'attr_name'=>$this->_post('name'),
                'attr_choose'=>$attr_choose,
                'flag'=>$this->_post('flag'),
                 'type_id'=>(int)$_POST['type_id']
            );
            if(M('type_attr')->data($data)->save()){
                $this->success('修改成功',U('Type/attrList'));
            }else{
                $this->error('修改失败');
            }
	}
	/**
	 * 删除对应id类型
	 * @return [attr]
	 */
	public function attrDel(){
            $pro_id=$this->_get('pro_id');
            if(M('type_attr')->where(array('pro_id'=>$pro_id))->delete()){
                $this->success('删除成功');
            }else{
                $this->error('删除失败');
            }
	}
}
?>